The present invention relates generally to the field of data communications; and more specifically, to streaming media over a wireless or wired IP network to a media arrangement.
Streaming media, sometimes referred to as “media streams”, “streaming data”, “media data”, or “data”, are media that are continuously received by, and normally output to, an end user while the media are being delivered by a provider. Streaming media include, for example, data in the form of audio, video, graphics primitives, applets, interactive content, or a combination thereof, sometimes referred to as multimedia or multimedia streams. Streaming is typically accomplished using data packets, sometimes referred to as packets, which are transported over a communications network, such as a wireless network.
Current methods for streaming media may be problematic, however, due to a number of problems. These problems include, for example: (1) source dependency; (2) latency, (3) dropout, (4) jitter, (5) synchronization of multiple independent destinations, and (6) signal conversion and compensation.
First, source application dependency may be an issue. In a typical streaming environment, a source of the streaming media such as a handheld device or mobile telephone includes a software streaming media application. This software application is designed with a specific protocol for streaming to the destination devices. Even if there are standards defined for such a protocol, the application and the destination devices must adhere to this standard to be able to stream to the devices. A typical PC media application that is already designed to work with the standard local media devices on a PC, would not be able to stream to destination devices without modification to the source application to make it adhere to the streaming protocol of the destination device (i.e., each media application would need to be modified to implement the streaming protocol, in order for it to stream media to destination devices).
Second, latency may be an issue. In a typical local area network (LAN) design is based on an inherently asynchronous Carrier Sense Multiple Access/Collision Avoidance (CSMA/CA) protocol at the physical layer. Under the CSMA/CA protocol, the actual moment that a packet may be successfully transmitted to its destination is unpredictable.
Third, dropout may be an issue. Dropout, or packet drops, generally refers to a loss of data somewhere during transit of the network. For example, use of an 802.11 wireless network has a high likelihood of dropping packets for several milliseconds due to noise or other causes. Thus, it is not guaranteed that the packet will actually make it across the network and to the destination. Wired IP networks such as Ethernet also drop packets when Ethernet cannot transmit the packets across the network.
Fourth, jitter may be an issue. Jitter generally refers to the variation in the time between arrival of packets. The variation may be caused by, for example, network congestion, timing drift, or route changes. Devices along the packet's path in the network may further delay the packet for additional random amounts of time. Further, if the source or destination applications are operating in a multitasking operating system, further delays may be introduced before the packets in the stream are actually serviced. Such variations in the arrival times of packets may result in degradation in the quality of the output and other adverse consequences.
Fifth, synchronization of multiple destinations may be an issue. One of the problems of streaming multimedia to multiple independent destination devices over a wireless network is how to synchronize the destinations such that they all output the same stream audio sample, e.g., sound, at the same time. Multimedia streams, such as an audio stream, require a constant stream of regular data to be provided to a destination device, e.g., an output device, to operate properly. For example, a 44.1 KHz audio output device requires an audio data sample every 22.6 uSecs. If the multimedia stream is being sent to multiple destinations, each output device needs to be synchronized to one another, such that all the output devices output the same data sample at the same time. The degree to which these data samples are offset may or may not be noticeable to a user, depending on the media and on the viewing or listening circumstances.
A synchronization issue also arises when streaming video to multiple independent destinations that are viewable by the same person. If the images need to be synchronized then each image frame presented at each destination needs to be presented at the same time.
Sixth, signal conversion may be an issue. For example, once streaming audio has reached an output device such as a speaker, the speaker converts an electrical signal to a sound wave to produce the audio sound necessary for listening by an end user. Currently, a loudspeaker, or speaker, is a passive device with a permanent magnet and a voice coil in the magnetic field of the permanent magnet. When the voice coil is connected to the output of an audio amplifier generating an audio signal, the current flowing through the voice coils causes a force that moves the speaker diaphragm. The diaphragm, in turn, moves the air causing a sound compression wave. The sound compression wave period is proportional to the force and current going through the voice coil. The speaker attempts to correctly translate the time domain and frequency domain characteristics of the electrical signal coming from the amplifier to an equivalent sound wave in the air. Although much effort is put into the design of the amplifier to ensure the accurate representation of the signal, current conversion techniques are extremely nonlinear due to various reasons including mechanical damping effects, mechanical ringing, and magnetic flux Linkage behavior, thus resulting in less than optimal performance and quality.
Seventh, streaming performance is impacted by communication channel contention. When many devices are using the same radio channel to communicate using a CSMA/CA protocol, performance can be significantly degraded if they all communicate at unpredictable times and many compete for the channel at the same time. A destination device may be competing for the channel to respond to a prior message, just when the source needs to be transmitting data to all the channels. The source transmission could therefore be preempted by a destination device responding at an inappropriate time. If this contention is unmanaged, streaming performance and throughput will be degraded.
Streaming media over a wireless network to a media arrangement can be implemented through the use of various different streaming protocols. The development of incompatible protocols by different organizations also results in a situation where media sources are restricted to interoperate with only a small subset of commercially available media destination types.